ACE uses Entity Framework Core, database first.

That means you can design/modify your database schema using an external tool like phpMyAdmin or MySQL Workbench.

After you make changes to your schema, you then must "scaffold" those changes. That involves running a command that will connect to your database, read the schema, and then create the C# classes.

To scaffold, you must open the Package Manager Console.
Visual Studio -> View -> Other Windows -> Package Manager Console

In the console, you'll need to enter the appropriate line to scaffold the schema you have modified.

Notes:
If your server is not local host, you can replace localhost with the appropriate IP address
You also need to change the myPassword to your root accounts password. If not using root, enter the appropriate user and password.

Scaffold-DbContext "server=localhost;port=3306;user=root;password=myPassword;database=ace_auth;TreatTinyAsBoolean=False" -Project ACE.Database -OutputDir ".\Models\Auth" -Context "AuthDbContext" -f Pomelo.EntityFrameworkCore.MySql -NoPluralize
Scaffold-DbContext "server=localhost;port=3306;user=root;password=myPassword;database=ace_shard;TreatTinyAsBoolean=False" -Project ACE.Database -OutputDir ".\Models\Shard" -Context "ShardDbContext" -f Pomelo.EntityFrameworkCore.MySql -NoPluralize
Scaffold-DbContext "server=localhost;port=3306;user=root;password=myPassword;database=ace_world;TreatTinyAsBoolean=False" -Project ACE.Database -OutputDir ".\Models\World" -Context "WorldDbContext" -f Pomelo.EntityFrameworkCore.MySql -NoPluralize

If you get this error:

Your startup project 'ACE.Server' doesn't reference Microsoft.EntityFrameworkCore.Design. This package is required for the Entity Framework Core Tools to work. Ensure your startup project is correct, install the package, and try again.

Run this command from Package Manager Console on ACE.Server project:

Install-Package Microsoft.EntityFrameworkCore.Tools -Version 8.0.5

If any changes were detected, C# classes will have been added or modified. Leave the auto generated classes alone. Do not try to optimize them, or clean them up cosmetically.
They are partial classes, so you can create a partial class if you want to add methods, or, you can create extension methods as well in a separate file.

When the scaffold process completes, you will need to change one section in the xxxxDbContext.cs file that it generates for you:

Before:
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            if (!optionsBuilder.IsConfigured)
            {
#warning To protect potentially sensitive information in your connection string, you should move it out of source code. See http://go.microsoft.com/fwlink/?LinkId=723263 for guidance on storing connection strings.
                optionsBuilder.UseMySql("server=localhost;port=3306;user=root;password=myPassword;database=ace_shard");
            }
        }

After:
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            var config = Common.ConfigManager.Config.MySql.Shard;

            optionsBuilder.UseMySql($"server={config.Host};port={config.Port};user={config.Username};password={config.Password};database={config.Database}");
        }

Remember that the "var config" line should reflect whichever database you're connecting to... Auth, Shard, or World.
